﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GraphicsFramework.Property
{
    public class DrawProperty
    {

        private ColorProperty fillcolor;
        private ColorProperty linecolor;
        private int linewidth;
        private bool scaleoutline;
        private bool showfill;
        private bool showoutline;

        #region  Constructor

        public DrawProperty()
        {
            this.fillcolor = new ColorProperty();
            this.linecolor = new ColorProperty();
            linewidth = 1;
            scaleoutline = false;
            showfill = true;
            showoutline = true;
        }

        public DrawProperty(ColorProperty fillcolor, ColorProperty linecolor, int linewidth = 1, bool scaleoutline = true, bool showfill = true, bool showoutline = true)
        {
            this.fillcolor = fillcolor;
            this.linecolor = linecolor;
            this.linewidth = linewidth;
            this.scaleoutline = scaleoutline;
            this.showfill = showfill;
            this.showoutline = showoutline;
        }

        public DrawProperty Clone()
        {
            return new DrawProperty(fillcolor.Clone(), linecolor.Clone(), linewidth, scaleoutline, showfill, showoutline);
        }

        #endregion

        #region  Properties

        public int LineWidth
        {
            get { return linewidth; }
            set { linewidth = value; }
        }

        public bool ScaleOutline
        {
            get { return scaleoutline; }
            set { scaleoutline = value; }
        }

        public ColorProperty FillColor
        {
            get { return fillcolor; }
            set { fillcolor = value; }
        }

        public ColorProperty LineColor
        {
            get { return linecolor; }
            set { linecolor = value; }
        }

        public bool ShowFill
        {
            get { return showfill; }
            set { showfill = value; }
        }

        public bool ShowOutline
        {
            get { return showoutline; }
            set { showoutline = value; }
        }

        #endregion

    }
}
